软件崩溃分析

您所在的位置:网站首页 crashrpt 应用程序错误 软件崩溃分析

软件崩溃分析

2023-06-12 05:14| 来源: 网络整理| 查看: 265

有如下的代码,再这里使用crashrpt2分析

#include #include #include #include #include "CrashRpt.h" #ifdef DEBUG #pragma comment(lib,"CrashRpt1500d.lib") #else #pragma comment(lib,"CrashRpt1500.lib") #endif BOOL InstallCrashRpt() { //软件启动时初始化 CR_INSTALL_INFO info; memset(&info, 0, sizeof(CR_INSTALL_INFO)); info.cb = sizeof(CR_INSTALL_INFO); info.pszAppName = _T("Project5"); // Define application name. info.pszAppVersion = _T("1.0.0"); // Define application version. //info.pszCrashSenderPath = _T("…");//CrashSender.exe路径 info.pszErrorReportSaveDir = _T(".\\ErrorReport\\");//保存错误报告的路径(本地堆栈生成的位置) info.dwFlags |= CR_INST_ALL_POSSIBLE_HANDLERS;//安装所有可能的异常处理程序 info.dwFlags |= CR_INST_NO_GUI;//不显示奔溃提示框 info.dwFlags |= CR_INST_DONT_SEND_REPORT;//不要发送邮件,保存到本地 info.dwFlags |= CR_INST_STORE_ZIP_ARCHIVES;//生成堆栈压缩包 info.pszUrl = _T("http://someserver.com/crashrpt.php"); info.pszPrivacyPolicyURL = _T("http://someserver.com/privacy.html"); int nResult = crInstall(&info); if (nResult != 0) { TCHAR buff[256]; crGetLastErrorMsg(buff, 256); MessageBox(NULL, buff, _T("crInstall error"), MB_OK); return FALSE; } //截屏保存 crAddScreenshot2(CR_AS_MAIN_WINDOW | CR_AS_USE_JPEG_FORMAT, 95); return TRUE; } // 卸载CrashRpt void UninstallCrashRpt() { // 在主线程退出前卸载CrashRpt crUninstall(); } int _tmain(int argc, _TCHAR * argv[]) { // 安装CrashRpt if (!InstallCrashRpt()) // 安装失败 return 1; char n = getchar(); if (n == 'a') { int* p = 0; *p = 0; // Access violation } // 退出时卸载CrashRpt UninstallCrashRpt(); return 0; }

输入a,然后回车就会崩溃,会生成日志, 在这里插入图片描述 在这里插入图片描述 然后使用windbg(64位),进行分析: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 使用命令分析:!analyze -v 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述 69行有错误

CrashRpt2库下载 Windbg下载



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3